{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f6dfe54f",
   "metadata": {},
   "source": [
    "## 实验四 第4.2题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "53edc4c2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入库\n",
    "# import pandas as pd\n",
    "from matplotlib import pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn import preprocessing\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, accuracy_score, precision_score, recall_score, \\\n",
    "    f1_score, precision_recall_curve\n",
    "from sklearn.model_selection import train_test_split, GridSearchCV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "de7d62b9",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'pd' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[4], line 2\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[38;5;66;03m# 数据处理,sep表示用逗号\",\"分割数据\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m data  \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata/Electrical Grid Data.csv\u001b[39m\u001b[38;5;124m'\u001b[39m,sep\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m,\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m      3\u001b[0m \u001b[38;5;28mprint\u001b[39m(data)\n",
      "\u001b[0;31mNameError\u001b[0m: name 'pd' is not defined"
     ]
    }
   ],
   "source": [
    "# 数据处理,sep表示用逗号\",\"分割数据\n",
    "data  = pd.read_csv('data/Electrical Grid Data.csv',sep=',')\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ef742f19",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查看各列相关性,p1 = abs(p2 + p3 + p4),p1和p2、p3和p4为负相关\n",
    "corr = data.corr()\n",
    "corr.head()\n",
    "sns.heatmap(corr,xticklabels=corr.columns.values,yticklabels=corr.columns.values)\n",
    "plt.savefig(\"Correlation\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5fe11703",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['tau1', 'tau2', 'tau3', 'tau4', 'p1', 'p2', 'p3', 'p4', 'g1', 'g2', 'g3', 'g4', 'stab', 'stabf']\n"
     ]
    }
   ],
   "source": [
    "# 获取data的列名['tau1', 'tau2', 'tau3', 'tau4', 'p1', 'p2', 'p3', 'p4', 'g1', 'g2', 'g3', 'g4', 'stab', 'stabf']\n",
    "name_list = data.columns.values.tolist()\n",
    "print(name_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "de7068db",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             0         1         2         3         4\n",
      "tau1  2.959060  9.304097  8.971707  0.716415  3.134112\n",
      "tau2  3.079885  4.902524  8.848428  7.669600  7.608772\n",
      "tau3  8.381025  3.047541  3.046479  4.486641  4.943759\n",
      "tau4  9.780754  1.369357  1.214518  2.340563  9.857573\n",
      "p2   -0.782604 -1.940058 -1.207456 -1.027473 -1.125531\n",
      "p3   -1.257395 -1.872742 -1.277210 -1.938944 -1.845975\n",
      "p4   -1.723086 -1.255012 -0.920492 -0.997374 -0.554305\n",
      "g1    0.650456  0.413441  0.163041  0.446209  0.797110\n",
      "g2    0.859578  0.862414  0.766689  0.976744  0.455450\n",
      "g3    0.887445  0.562139  0.839444  0.929381  0.656947\n",
      "g4    0.958034  0.781760  0.109853  0.362718  0.820923\n"
     ]
    }
   ],
   "source": [
    "# 获取预测属性\n",
    "X = data.drop(['p1','stab','stabf'],axis=1)\n",
    "print(X.head().T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4bb5034e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0       unstable\n",
      "1         stable\n",
      "2       unstable\n",
      "3       unstable\n",
      "4       unstable\n",
      "          ...   \n",
      "9995    unstable\n",
      "9996      stable\n",
      "9997      stable\n",
      "9998    unstable\n",
      "9999    unstable\n",
      "Name: stabf, Length: 10000, dtype: object\n"
     ]
    }
   ],
   "source": [
    "# 类别标签\n",
    "# 获取类别标签。此处填入你的代码。（1）\n",
    "# Importing required libraries\n",
    "y = data['stabf']\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a7c1bad9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将标签字符转换成数字\n",
    "# 获取一个LabelEncoder\n",
    "enc = preprocessing.LabelEncoder()\n",
    "# 训练LabelEncoder,'unstable'对应1, 'stable'对应0\n",
    "enc=enc.fit(['unstable', 'stable'])\n",
    "# 使用训练好的LabelEncoder对原数据进行编码\n",
    "y = enc.transform(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "04dda46c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(7500, 11) (2500, 11) (7500,) (2500,)\n"
     ]
    }
   ],
   "source": [
    "# 划分训练集和训练集。test_size=0.25。此处填入你的代码。（2）\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)\n",
    "print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c30c696c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 配置参数\n",
    "param = {'n_estimators':list((50,100,300)),'max_depth':list((3,5,7,9)),'criterion':['gini','entropy']}\n",
    "# 随机森林模型\n",
    "forest = RandomForestClassifier()\n",
    "# 用GridSearchCV进行调参\n",
    "gsearsh = GridSearchCV(estimator=forest,param_grid=param,n_jobs=-1).fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "3824aaa6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'criterion': 'gini', 'max_depth': 9, 'n_estimators': 300}\n"
     ]
    }
   ],
   "source": [
    "# 最优的参数,类型为字典dict\n",
    "best_param = gsearsh.best_params_\n",
    "print(best_param)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6cc73634",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(n_estimators=300, n_jobs=-1, oob_score=True)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(n_estimators=300, n_jobs=-1, oob_score=True)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "RandomForestClassifier(n_estimators=300, n_jobs=-1, oob_score=True)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用经过网格搜索得到的最优参数,n_jobs=-1表示用上所有的处理器\n",
    "rfc = RandomForestClassifier(n_estimators = best_param[\"n_estimators\"],\n",
    "                            criterion=best_param[\"criterion\"], oob_score=True,n_jobs=-1)\n",
    "# 训练rfc。此处填入你的代码。（3）\n",
    "rfc.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "e89c76e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对y_test进行预测。此处填入你的代码。（4）\n",
    "y_pred = rfc.predict(X_test) # 返回预测的类别标签\n",
    "y_proba = rfc.predict_proba(X_test) # 返回预测为每个类别的概率\n",
    "# predict_proba返回的是对于预测为0/1的概率\n",
    "y_proba = rfc.predict_proba(X_test)\n",
    "# 正例的概率\n",
    "y_scores = y_proba[:,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "de6da994",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion matrix is \n",
      " [[ 762  108]\n",
      " [  94 1536]]\n"
     ]
    }
   ],
   "source": [
    "# 输出混淆矩阵,混淆矩阵格式如下:\n",
    "# [TN FP]\n",
    "# [FN TP]\n",
    "# 建立混淆矩阵。此处填入你的代码。（5）\n",
    "from sklearn.metrics import confusion_matrix\n",
    "cm = confusion_matrix(y_test, y_pred) # 返回一个二维数组，表示混淆矩阵\n",
    "print(\"Confusion matrix is \\n\",cm)\n",
    "# confusion_matrix(混淆矩阵), display_labels(标签名称列表)\n",
    "disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=['0','1'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "546d6903",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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L2ZXBjQaDc6fP1+p/aeffkLTpk2tEhQREZHVVTyB0JKtjjI7GRg+fDjefPNNHD58GDKZDJmZmdi4cSPGjx+P119/3RYxEhERWa6G5wzcT8xeWjh58mQYDAZ0794dt27dQufOnaFUKjF+/HiMGjXKFjESERGRDZmdDMhkMrz77ruYMGECzp8/j4KCAgQHB1v17UlERETWdueDg+71+Lrqnh86pFAoEBwcbM1YiIiIbKeGX1R0PzE7GejWrZv4Huaq7N2716KAiIiIqGaZnQxUPCKxQmlpKVJSUvDbb78hKirKWnERERFZl4XDBKwM3GHJkiVVts+YMQMFBQUWB0RERGQTHCYwyWpvLXzppZfw6aefWut0REREVEOs9tbCpKQko8cnEhER1SqsDJhkdjIwcOBAo8+CIODatWs4duwYpk6darXAiIiIrIlLC00zOxlQq9VGn+VyOQIDAzFr1iz06NHDaoERERFRzTArGdDr9Rg6dChatWoFLy8vW8VERERENcisCYQODg7o0aMH8vLybBQOERGRjfDdBCaZvZqgZcuWuHjxoi1iISIispmKOQOWbHWV2cnAnDlzMH78eOzYsQPXrl2DTqcz2oiIiOj+Uu05A7NmzcJbb72F3r17AwCefvppo8cSC4IAmUwGvV5v/SiJiIisoQ7/dm+JaicDM2fOxGuvvYYff/zRlvEQERHZBp8zYFK1kwFBKP8pdOnSxWbBEBERUc0za2nhv72tkIiIqDbjQ4dMMysZePjhh++aEOTm5loUEBERkU1wmMAks5KBmTNnVnoCIREREd3fzEoGIiIi4OPjY6tYiIiIbIbDBKZVOxngfAEiIrqvcZjApGo/dKhiNQERERHVLdWuDBgMBlvGQUREZFusDJhk9iuMiYiI7kecM2AakwEiIpIGVgZMMvtFRURERFS3sDJARETSwMqASUwGiIhIEjhnwDQOExAREUkcKwNERCQNHCYwickAERFJAocJTOMwARERkcSxMkBERNLAYQKTmAwQEZE0MBkwicMEREREEsfKABERSYLsr82S4+sqJgNERCQNHCYwickAERFJApcWmsY5A0RERDZy9epVvPTSS6hXrx5cXFzQqlUrHDt2TNwvCAKmTZuGhg0bwsXFBWFhYTh37pzROXJzcxEZGQmVSgVPT09ER0ejoKDAqnEyGSAiImkQrLCZ4caN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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制混淆矩阵\n",
    "disp.plot()\n",
    "plt.title(\"Confusion matrix\")\n",
    "plt.savefig(\"Confusion_matrix\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "c7af6a47",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy of Label is  0.9192\n"
     ]
    }
   ],
   "source": [
    "# 准确率accuracy=(TP+TN)/(TP+FP+TN+FN)\n",
    "print(\"Accuracy of Label is \",accuracy_score(y_test,y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "ba60badf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Precision of Label is  0.9343065693430657\n"
     ]
    }
   ],
   "source": [
    "# 精确度 P = TP / (TP + FP)\n",
    "print(\"Precision of Label is \",precision_score(y_test,y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "5998f375",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9423312883435583\n"
     ]
    }
   ],
   "source": [
    "# 召回率R = TP / (TP + FN)。此处填入你的代码。（6）\n",
    "from sklearn.metrics import recall_score\n",
    "r = recall_score(y_test, y_pred) # 返回一个浮点数，表示召回率\n",
    "print(r) # 打印召回率\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "59daf605",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "F1 of Label is 0.9383017715332925\n"
     ]
    }
   ],
   "source": [
    "# F1度量 F1 = (2 x P x R) / (P + R)\n",
    "print(\"F1 of Label is\",f1_score(y_test,y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "0e9fae44",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Fx8fH+N3ioiIiJo9yecANcS6devQrVs39O3b16D90Ucf1f/drVs3dO/eHf7+/tizZw8eeOCBGtuJiIhAeHi4/nVBQQFDEBERUQsm6QiQi4sLFAoFsrKyDNqzsrLg4eFxy3WLi4uxefNmPPHEE7f9HD8/P7i4uODMmTO1vq9SqeDo6GiwEBERUcslaQBSKpUIDAxEUlKSvk2n0yEpKQnBwcG3XPfzzz9HWVkZHnvssdt+zsWLF5GbmwtPT88G10xERETmT/KrwMLDw/HBBx9g48aNOHXqFGbPno3i4mKEhYUBAKZOnYqIiIga661btw6jR49G69atDdqLiorwwgsv4MCBAzh37hySkpLw8MMPo3379ggNDW2SfSIiIqLmTfI5QBMmTEB2djaWLl2KzMxM9OjRA4mJifqJ0RkZGZDLDXNaSkoK9u7di++//77G9hQKBX7//Xds3LgReXl58PLywtChQ/HKK6/wXkBEREQEoBkEIACYO3cu5s6dW+t7e/bsqdHWqVMnCCFq7W9jY4PvvvvOlOURERFRCyP5KTAiIiKipsYARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4zSIARUdHw9fXF2q1GkFBQTh06FCdfQcPHgyZTFZjGTlypL6PEAJLly6Fp6cnbGxsEBISgtTU1KbYFSIiIjIDkgegLVu2IDw8HJGRkTh8+DACAgIQGhqKq1ev1to/Li4OV65c0S/Hjx+HQqHAuHHj9H3eeOMNvP3224iJicHBgwdhZ2eH0NBQlJaWNtVuERERUTMmeQBauXIlZsyYgbCwMNxzzz2IiYmBra0t1q9fX2v/Vq1awcPDQ7/s3LkTtra2+gAkhMCqVauwePFiPPzww+jevTs++ugjXL58GV999VUT7hkRERE1V5IGoPLyciQnJyMkJETfJpfLERISgv3799/RNtatW4dHH30UdnZ2AID09HRkZmYabFOj0SAoKOiOt0lEREQtm5WUH56TkwOtVgt3d3eDdnd3d5w+ffq26x86dAjHjx/HunXr9G2ZmZn6bfxzm9Xv/VNZWRnKysr0rwsKCu54H4iIiMj8SH4KrCHWrVuHbt26oW/fvg3aTlRUFDQajX7x8fExUYVERETUHEkagFxcXKBQKJCVlWXQnpWVBQ8Pj1uuW1xcjM2bN+OJJ54waK9erz7bjIiIQH5+vn65cOFCfXeFiIiIzIikAUipVCIwMBBJSUn6Np1Oh6SkJAQHB99y3c8//xxlZWV47LHHDNrbtWsHDw8Pg20WFBTg4MGDdW5TpVLB0dHRYCEiIqKWS9I5QAAQHh6OadOmoXfv3ujbty9WrVqF4uJihIWFAQCmTp0Kb29vREVFGay3bt06jB49Gq1btzZol8lkeO655/Dqq6+iQ4cOaNeuHZYsWQIvLy+MHj26qXaLiIiImjHJA9CECROQnZ2NpUuXIjMzEz169EBiYqJ+EnNGRgbkcsOBqpSUFOzduxfff/99rdt88cUXUVxcjKeeegp5eXkYMGAAEhMToVarG31/iIiIqPmTCSGE1EU0NwUFBdBoNMjPz+fpMCIiIhN6+ZuTWP9LOp4e7I8Xh3U26bbr8/tt1leBERERERmDAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOIwABEREZHFYQAiIiIii8MARERERBaHAYiIiIgsDgMQERERWRwGICIiIrI4DEBERERkcRiAiIiIyOJIHoCio6Ph6+sLtVqNoKAgHDp06Jb98/LyMGfOHHh6ekKlUqFjx45ISEjQv79s2TLIZDKDpXPnzo29G0RERGRGrKT88C1btiA8PBwxMTEICgrCqlWrEBoaipSUFLi5udXoX15e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T4vr1683feFm5Icffqj1v7fVx3batGli0KBBNdbp0aOHUCqVws/PT2zYsKHR65QJwXE8IiIisiycA0REREQWhwGIiIiILA4DEBEREVkcBiAiIiKyOAxAREREZHEYgIiIiMjiMAARERGRxWEAIiK6QzKZDF999RUA4Ny5c5DJZDh69KikNRGRcRiAiMgsTJ8+HTKZDDKZDNbW1mjXrh1efPFFlJaWSl0aEZkhPg2eiMzGsGHDsGHDBlRUVCA5ORnTpk2DTCbDihUrpC6NiMwMR4CIyGyoVCp4eHjAx8cHo0ePRkhICHbu3Amg6sneUVFRaNeuHWxsbBAQEIBt27YZrH/ixAk89NBDcHR0hIODAwYOHIizZ88CAH799Vc8+OCDcHFxgUajwaBBg3D48OEm30ciahoMQERklo4fP459+/ZBqVQCAKKiovDRRx8hJiYGJ06cwLx58/DYY4/hxx9/BABcunQJ9913H1QqFXbv3o3k5GQ8/vjjqKysBAAUFhZi2rRp2Lt3Lw4cOIAOHTpgxIgRKCwslGwfiajx8BQYEZmNb7/9Fvb29qisrERZWRnkcjnWrl2LsrIyLF++HLt27UJwcDAAwM/PD3v37sV7772HQYMGITo6GhqNBps3b4a1tTUAoGPHjvptDxkyxOCz3n//fTg5OeHHH3/EQw891HQ7SURNggGIiMzG/fffj3fffRfFxcX43//+BysrK4wdOxYnTpxASUkJHnzwQYP+5eXl6NmzJwDg6NGjGDhwoD78/FNWVhYWL16MPXv24OrVq9BqtSgpKUFGRkaj7xcRNT0GICIyG3Z2dmjfvj0AYP369QgICMC6devQtWtXAEB8fDy8vb0N1lGpVAAAGxubW2572rRpyM3NxerVq9G2bVuoVCoEBwejvLy8EfaEiKTGAEREZkkul2PhwoUIDw/Hn3/+CZVKhYyMDAwaNKjW/t27d8fGjRtRUVFR6yjQL7/8gnfeeQcjRowAAFy4cAE5OTmNug9EJB1OgiYiszVu3DgoFAq89957mD9/PubNm4eNGzfi7NmzOHz4MNasWYONGzcCAObOnYuCggI8+uij+O2335CamopNmzYhJSUFANChQwds2rQJp06dwsGDBzF58uTbjhoRkfniCBARmS0rKyvMnTsXb7zxBtLT0+Hq6oqoqCikpaXByckJvXr1wsKFCwEArVu3xu7du/HCCy9g0KBBUCgU6NGjB/r37w8AWLduHZ566in06tULPj4+WL58OebPny/l7hFRI5IJIYTURRARERE1JZ4CIyIiIovDAEREREQWhwGIiIiILA4DEBEREVkcBiAiIiKyOAxAREREZHEYgIiIiMjiMAARERGRxWEAIiIiIovDAEREREQWhwGIiIiILA4DEBEREVmc/wcax8hIog9qbgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制P-R曲线\n",
    "precision, recall, thresholds = precision_recall_curve(y_test, y_scores)\n",
    "plt.figure(\"P-R Curve\")\n",
    "plt.title('Precision/Recall Curve')\n",
    "plt.xlabel('Recall')\n",
    "plt.ylabel('Precision')\n",
    "plt.plot(recall,precision)\n",
    "plt.savefig(\"P_R_Curve\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "d3877fa3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制ROC曲线\n",
    "from sklearn import metrics\n",
    "# 计算不同阈值下，fpr和tpr的组合值，其中fpr表示1-Specificity，tpr表示Sensitivity\n",
    "fpr,tpr,threshold = metrics.roc_curve(y_test, y_scores)\n",
    "\n",
    "# 计算AUC的值\n",
    "roc_auc = metrics.auc(fpr,tpr)\n",
    "# 绘制面积图\n",
    "plt.stackplot(fpr, tpr, color='steelblue', alpha = 0.5, edgecolor = 'black')\n",
    "# 添加边际线\n",
    "plt.plot(fpr, tpr, color='black', lw = 1)\n",
    "# 添加对角线\n",
    "plt.plot([0,1],[0,1], color = 'red', linestyle = '--')\n",
    "# 添加文本信息\n",
    "plt.text(0.5,0.3,'ROC curve (area = %0.2f)' % roc_auc)\n",
    "# 添加x轴与y轴标签\n",
    "plt.xlabel('1-Specificity')\n",
    "plt.ylabel('Sensitivity')\n",
    "# 显示图形\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5b30219a",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:pytorch]",
   "language": "python",
   "name": "conda-env-pytorch-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
